﻿
/* *********************************************************************** *\
 * Disclaimer                                                              *
\* *********************************************************************** */

This mod requires altering minecraft.jar, and SMP may not work with this mod
installed. This mod can add new content, do not load worlds with this new
content if this mod is not installed. I am not responsible for any damage done
to your computer, worlds, or your copy of Minecraft. That said, backup your
worlds and bin folder!

/* *********************************************************************** *\
 * Requirements                                                            *
\* *********************************************************************** */

. ModLoader Beta 1.5_01v3
. Knowledge of installing minecraft mods.

/* *********************************************************************** *\
 * BetterBlocks v3.2 for Minecraft 1.5_01                                  *
\* *********************************************************************** */

    This mod modifies existing blocks to either fix bugs, or add new
behaviors. It will do so in such a way that any of it's changes can be undone
by installation of another mod with little to no side-effects other than lost
features/bug fixes.

This mod will NEVER...
    . Add new sprites (item/terrain textures)
    . Require new block IDs (can all be disabled using the configuration)

/* *********************************************************************** *\
 * New Content                                                             *
\* *********************************************************************** */

Ladders [v3.2]
            # . #
            # # #       # = Sticks, Stone, Iron, Gold
            # . #
    . Are now 3D and use Plank, Stone, Iron Block, and Gold Block textures.
    . Can be placed anywhere event without support.
    . Two ladders next to each other (of the same material) will join together.
    . BUG: You can only climb one side of the ladder.
    . Can be unmaed
                . . .
                . # .   # = Any Ladder
                . . .

Bookshelves [v3.2]
            # # #
            x x x       # = Planks, or Any Log
            # # #       x = Book
    . Now only have books on two sides (north-south or east-west)
    . Can be made out of logs (and have different textures on non-book sides)
    . Now drop themselves.
    . COMPAT: Already placed bookshelves still have four sides until borken.

Hidden Doors [v3.2]
            . # #
            . # #       # = Stone, Cobblestone, Cobblestone, Brick, and Sandstone
            . # #
    . See Doors below for wooden and iron recipes.
    . All but wooden require redstone power to open/close.
    . Work exactly like doors but blends seemlessly with material it's made of.

Trapdoors [v3.2]
            . . .
            . # .       # = Stone, Cobblestone, Brick hidden door
            . . .
    . All but wooden require redstone power to open/close.
    . Work exactly like hatches, but occupies the top of the block space.
    . See Hatches below for wooden and iron recipes.

Better Axes [v3.2]
    . Axes are now effective agains all wooden materials...
        Workbench, Jukebox, Signs, etc...

Better Pickaxes [v3.2]
    . Pickaxes are now effective agains all wooden materials...
        Redstone Ore, Obsidian, Brick, Dispensers, Furnaces, etc...

Doors [v3.0]
            . # #
            . # #       # = Planks or Iron Ingots
            . # #
    . Doors are supported by the block below and the 4 blocks near the hinge.
    . Will open when redstone power is applied, really open not just rotate.
        . The door will examine it's surroundings to determine how to open.
    . Some powered door configurations (include two doors facing different
            directions to make a double door) will no longer work correctly.
    . [v3.2] Can be made into hidden doors
            . . .
            . # X       # = Wooden/Iron door
            . . .       X = Plank Block/Iron Ingot

Gates [v3.0]
            . . .
            . # #       # = Wooden or Iron Fence
            . . .
    . A gate that will run east-west or north-south.
    . Must be supported by a solid block or fence on one side.
    . Cannot jump over (like fences)
    . Will open when redstone power is applied.
    . All fences will connect to any gate.

Hatches [v3.0]
            . . .
            . # .       # = Wooden or Iron Door (Makes 2x)
            . . .
    . A block that will seal the bottom part of a block.
    . Must be supported by a solid block under, hinge side, or beside.
    . Will rotate up when redstone power is applied.
    . [v3.2] Can be made into trapdoors
            . . .
            . # X       # = Wooden/Iron hatch
            . . .       X = Plank Block/Iron Ingot

Logs [v3.0]
    Logs can now be placed horizontally based on side.

Hardness Modification [v3.0]
    Modified the hardness (vs Mining/Harvesting) of various blocks.
    . Normal Blocks
        . Cloth                  (0.8 -> 0.6)
        . Sandstone              (0.8 -> 1.0)
        . Lapis Block            (3.0 -> 2.5)
        . Gold Block             (stays  3.0)
        . Iron Block             (5.0 -> 4.0)
        . Diamond Block          (stays  5.0)
        . Obsidian               (10  -> 5.0) [no tool is effective]
        . Brick Block            (2.0 -> 1.5)
        . Fence, Slabs, Stairs   (2.0 -> 1.5) [not the Better Blocks kind]
        . Workbench              (2.5 -> 2.0)
        . Furnace, Dispensers    (3.5 -> 2.5)
        . Jukebox                (2.0 -> 1.0)
    . Better Blocks
            NOTE: Values are relative to the material their made of.
        . Slabs (single and double) are a 33% eaiser to harvest.
        . Fences and Stairs are a 33% harder to harvest.
        . Doors are 66% harder to harvest (but respond to tools properly).

Resistance Modification [v3.0]
    Modified the resistance (vs Explosions) of various blocks.
    . Normal Blocks
        . Stone                  (10 -> 15)
        . Lapis Block            ( 5 -> 15)
        . Iron Block             (10 -> 20)
        . Diamond Block          (10 -> 30)
        . Obsidian               (2000 -> 95)
        . Brick Block            (10 -> 15)
        . Fence                  ( 5 -> 13) [non-Better Blocks kind]
        . Slabs                  (10 ->  6) [non-Better Blocks kind]
    . Better Blocks
            NOTE: Values are relative to the material their made of.
        . Slabs (single and double) are 33% less resistant to explosion.
        . Doors are 33% more resistant to explosion.
        . Fences are 33% more resistant to explosion.

Torches [v2.5]
    [v3.0] Torches can be placed on fences (top and sides).
    Torches can be placed on half-blocks (and look correct when on top).
        WARNING: Redstone torches on a single slab do not work as if they were
                 on a solid block.
    Torches can be placed on the sides of stairs (but not on top).
    Torches can be placed on glass.

Stairs [Since v2.0]
    [v3.0] Have correct texture alignment.
    Stairs will form corners when placed next to each other.
    Stairs will render upsidedown when placed below a solid or half-block
        (and optinally above stairs.)
    Stone stairs can be made to look like half-blocks (in configuration.)

    New                     # . .
    + Stone                 # # .   # = Block
    + Log (Spruce Only)     # # #
    + Sandstone
    + Iron (using Iron Ingots OR Iron Blocks)
    + Diamond (using Diamonds OR Diamond Blocks)
    + Brick (using Bricks OR Brick Blocks)

    New [v2.2]
        Enable by setting "addNewBlocks" to "true" in configuration.
    + Obsidian
    + Snow (using Snowballs OR Snow Blocks)
    + Gold (using Gold Ingots OR Gold Blocks)
    + Lapis (using Lapis Dye OR Lapis Blocks)
    + Moss Stone
    + Netherrack
    + Log (Pine)
    + Log (Birch)

    New [v2.5]
        Enable by setting "addNewBlocks" to "true" in configuration.
    + All Wool Colors

Fences [Since v1.0]
    Fences will connect to neighboring solid blocks.
    Fences will connect to neighboring stair backs.

    New                         . . .
    + Stone                     # # #   # = Block
    + Cobblestone               # # #
    + Moss Stone
    + Obsidian
    + Netherrack
    + Sandstone
    + Iron (using Iron Ingots)
    + Gold (using Gold Ingots)
    + Diamond (using Diamond Ingots)
    + Lapis (using Lapis Dye)
    + Brick (using Bricks)
    + Any Log

New Slabs [Since v1.0]
    [v3.0] Have correct texture alignment.
    [v3.0] Will render upside-down when under a solid block.
        [v3.1] Can be set to prefer rendering right-side-up.
    [v3.2] Double slabs will render with rotated texture on each side.

    + Moss Stone                . . .
    + Obsidian                  # # #   # = Block
    + Netherrack                # # #
    + Iron (using Iron Ingots OR Iron Blocks)
    + Gold (using Gold Ingots OR Gold Blocks)
    + Diamond (using Diamond Ingots OR Diamond Blocks)
    + Lapis (using Lapis Dye OR Lapis Blocks)
    + Brick (using Bricks OR Brick Blocks)
    + Snow (using Snowballs OR Snow Blocks) [v2.0]
    + Any Log

    New Blocks [v2.5]
        Enable by setting "addNewBlocks" to "true" in configuration.
    + All Wool Colors

Unmake Fences
                                . . .
                                . # .   # = Fence
                                . . .

Unmake Slabs
                                . . .
                                . # .   # = Slab
                                . # .

Unmake Stairs
                                . . .
                                . # .   # = Stairs
                                . . .

/* *********************************************************************** *\
 * Minecraft Bugs Fixed                                                    *
\* *********************************************************************** */

. [v1.0] Fences/Slabs can be harvested faster with the proper tools
    (Axe for Planks/Log, Pickaxe for Others)
. [v1.0] Fences/Slabs react correctly to explosions
    (Obsidian Fence/Slab cannot be destroyed by TNT/Creeper)
. [v2.0] Stairs can be harvested faster with the proper tools.
. [v2.5] Fences have smaller block bounds if possible.
. [v2.5] Slabs can be placed on another even when under another block.
. [v3.0] Various rendering bugs related to texture alignment (stairs, slabs, etc.)

/* *********************************************************************** *\
 * Configuration                                                           *
\* *********************************************************************** */

addNewBlocks                                                [DEFAULT: false]
    Set to true to enable adding new blocks (Block ID's are configurable)

    slabsMoreID1            (DEFAULT: 113)
    slabsMoreID2            (DEFAULT: 114)
        - Adds 16 new slab types.
    stairsMoreID1           (DEFAULT: 115)
    stairsMoreID2           (DEFAULT: 116)
        - Adds 8 new stair types.
    stairsWoolID1           (DEFAULT: 117)
    stairsWoolID2           (DEFAULT: 118)
    stairsWoolID3           (DEFAULT: 119)
    stairsWoolID4           (DEFAULT: 120)
        - Adds 16 new stair types.
    stairsWoolID1           (DEFAULT: 117)
    stairsWoolID2           (DEFAULT: 118)
    stairsWoolID3           (DEFAULT: 119)
    stairsWoolID4           (DEFAULT: 120)
        - Adds hidden doors, trapdoors, and new gates.

recipeAddReverse                                            [DEFAULT: true]
    Adds recipes to unmake slabs, fences, and stairs.



stackSizeFood                                               [DEFAULT: 8]
stackSizeVehicle                                            [DEFAULT: 4]
stackSizePlacable                                           [DEFAULT: 16]
    Sets the number allowed for various stack sizes.



fenceConnectSolidBlocks                                     [DEFAULT: true]
    Fences will connect to solid blocks excluding soil, and blocks
    made of the same material.

fenceConnectSameMaterial                                    [DEFAULT: true]
    Fences connect to blocks of the same material. This includes
    normal blocks (e.g. brick fence -> brick block) and double
    stacked slabs (e.g. brick fence -> double brick slab).

fenceConnectSoilBlocks                                      [DEFAULT: false]
    Fences connect to soil blocks (dirt, grass, sand, gravel,
    farmland)

fenceConnectDifferentFence                                  [DEFAULT: false]
    Fences will connect to fences made of other materials
    (e.g. Brick Fence -> Netherrack Fence)



stairsInvertBelowSolid                                      [DEFAULT: true]
    Stairs will render upside down if placed below a solid block.

stairsInvertAboveStairs                                     [DEFAULT: false]
    Stairs will render upside down if placed above another stair block.

stairsFormCorners                                           [DEFAULT: true]
    Stairs will render as a corner depending on surrounding stair blocks.

stairsStoneLikeHalfBlock                                    [DEFAULT: false]
    Stone stairs will use the half-block textures.



slabsInvertBelowSolid                                       [DEFAULT: true]
    Slabs will invert below solid blocks (even other single slabs.)

slabsPreferInversion                                        [DEFAULT: true]
    Slabs will invert if below AND above solid blocks.

/* *********************************************************************** *\
 * Installation                                                            *
\* *********************************************************************** */

Windows:
    1) Open up "%appdata%", if you don't know how to do this, start>run, then
            type in %appdata%
    2) Browse to ".minecraft/bin"
    3) Open up "minecraft.jar" with WinRAR or 7zip.
        3a) Drag and drop all ModLoader files into the jar.
        3b) Drag all BetterBlocks files ending with a ".class" into the jar.
        3c) Delete the META-INF folder in the jar.
    4) Install any other mods you wish.
    5) OPTINALLY to change configuration either...
            5a) Copy the "BetterBlocks.props" file to "%appdata%/.minecraft/mods"
            5b) Edit "BetterBlocks.props" with a text editor (notepad) to
                    configure.
        OR
            5a) Run Minecraft ONCE (login, then exit)
            5b) Browse to "%appdata%/.minecraft/mods"
            5c) Edit "BetterBlocks.props" with a text editor (notepad) to
                    configure.
    6) Play Minecraft, enjoy!

Macintosh:
    1) Go to Applications>Utilities and open terminal.
    2) Type in the following, line by line:
        > cd ~
        > mkdir mctmp
        > cd mctmp
        > jar xf ~/Library/Application\ Support/minecraft/bin/minecraft.jar
    3) Outside of terminal
        3a) Copy all ModLoader files into the "mctmp" directory.
        3b) Copy all BetterBlocks files ending with a ".class" into the "mctmp"
                directory.
    4) Back inside terminal, type in the following:
        > rm META-INF/MOJANG_C.*
        > jar uf ~/Library/Application\ Support/minecraft/bin/minecraft.jar ./
        > cd ..
        > rm -rf mctmp
            "mods" (it may already exist.)
    5) OPTINALLY to change configuration
            5a) Copy the "BetterBlocks.props" file to
                    "Library/Application Support/minecraft/mods"
            5b) Edit "BetterBlocks.props" with a text editor to configure.
        OR
            5a) Run Minecraft ONCE (login, then exit)
            5b) Browse to "Library/Application Support/minecraft/mods"
            5c) Edit "BetterBlocks.props" with a text editor to configure.
    6) Play Minecraft, enjoy!

/* *********************************************************************** *\
 * Version History                                                         *
\* *********************************************************************** */

Version 3.2 (for Minecraft 1.5_01):
    + Better Ladders
        . Now render in 3D
        . Can be made from sticks, stone, gold, or iron.
    + Better Bookcases
        . Can now be made from planks or any log
        . Now only face two ways (north-south OR east-west)
    + Hidden Doors and Trapdoors
        . Can now be made from planks, iron, stone, cobblestone, mossy
            cobblestone, brick, or sandstone.
        . All but wooden require redstone power to open/close.
    + Gates
        . Can now be made from stone, cobblestone, mossy cobblestone, brick,
            or sandstone.
    + Pickaxes now destroy obsidian quicker.
    + Axes now destroy all wooden objects quicker
        (e.g. Noteblocks, Jukebox, Sign, etc...)
    + Added Configuration
        'slabsPreferInversion'
    * Fixed BetterBlocks Bugs
        . A few typos in tooltips.
Version 3.1 (for Minecraft 1.5_01):
    + Added Configuration
        'slabsPreferInversion'
    * Fixed BetterBlocks Bugs
        . Smooth Lighting bugs (only Stairs right now)
        . Gates will no stay on other gates
        . Slab icon will no longer fidgit
        . Slabs can no longer be fallen through
Version 3.0 (for Minecraft 1.5_01):
    + Better Doors
        + Doors
            . Knows which way is open.
        + Gates
            . For fences
        + Hatches
            . For seals the bottom of a block.
            . Can be walked on when closed.
    + Better Logs
       . Can be placed horizontally.
    + Hardness (vs Mining/Harvesting) and Resistance (vs Explosion) tweaks
    + Added Configuration
       'useBetterDoors'
       'useBetterLogs'
       'slabsInvertBelowSolid'
    * Fixed BetterBlocks Bugs
       . Configuration now uses native line-endings.
       . Wool stairs and slabs have proper step sound.
       . Explosion of any BetterBlock no longer crashes the game.
       . Initialization & Configuration information is now logged to 'ModLoader.txt'.
    * Fixed Minecraft Bugs
       . Textures now align properly on Better Stairs and Slabs.
    - Removed Configuration
        'torchesOnGlass' torches can always be on glass now.
Version 2.5 (for Minecraft 1.5_01):
    + Minecraft Update
Version 2.5 (for Minecraft 1.4_01):
    + Torches can be placed on fences, slabs, and stairs (optinally on glass).
    + Fences can connect to the back's of stairs.
    + Confiugration will auto-generate and auto-update.
    + Added New Blocks (see Configuration: addNewBlocks)
        16 new stair types (one for each wool color)
        16 new slab types (one for each wool color)
    * Fixed Minecraft Bugs...
        . Identical slabs can be placed on another even when under another
          block (or torch).
    + Added Configuration
        'useBetterFences'
        'useBetterRedstoneTorches'
        'useBetterSlabs'
        'useBetterStairs'
        'useBetterTorches'
            Use to selectivly disable Better Blocks.
        'stackSizeFood' (pork, apples, etc.)
        'stackSizeBucket'
        'stackSizeVehicle' (boat, minecrats, saddle)
        'stackSizePlacable' (door, sign, bed)
            Changes stack sizes of various items/blocks.
        'torchesOnGlass'
            Set to true to allow torches to be placed on glass.
    + Added Configuration (Block IDs)
        'slabDoubleWoolID' (default 113)
        'slabSingleWoolID' (default 114)
            Enables wool slabs (set either to zero to disable both.)
        'stairsWoolID1' (default 117)
        'stairsWoolID2' (default 118)
        'stairsWoolID3' (default 119)
        'stairsWoolID4' (default 120)
            Enables wool stairs.
    - Removed Configuration
        'stairsInvertBelowStairs'
            'stairsInvertBelowSolid' now does the same thing
Version 2.2 (for Minecraft 1.4_01):
    + Added New Blocks (see Configuration: addNewBlocks)
        8 new stair types
    + Added Configuration (Block IDs)
        'stairsMoreID1' (default 115)
            Obsidian, Snow, Gold, Lapis
        'stairsMoreID2' (default 116)
            Moss Stone, Netherrack, Pine Log, Birch Log
    * Stairs
        fixed problem with TooManyItems
        (alternate) stone stairs now harvest at the correct speed
    * Corrected Internal Version Number (was still 1.0)
Version 2.1 (for Minecraft 1.4_01):
    + Added Configuration
        'stairsInvertBelowStairs'
        'stairsStoneLikeHalfBlock'
    * Stairs
        Will now invert if under a half block.
Version 2.0 (for Minecraft 1.4_01):
    + New Slab Block
        Snow
    + New Stair Blocks...
        Log (Spruce Only)
        Iron, Diamond
        Stone, Sandstone, and Brick
    + Stair blocks can render as corners and upside-down
    * Fixed Minecraft Bugs...
        . Stairs can be harvested faster with the proper tools.
Version 1.0 (for Minecraft 1.4_01):
    + New Slab Blocks...
        Log (Spruce, Pine, Birch),
        Iron, Gold, Diamond, Lapis,
        Brick, Moss Stone, Obsidian, and Netherrack
    + New Fence Blocks...
        Stone, Cobblestone, Sandstone
        Log (Spruce, Pine, Birch),
        Iron, Gold, Diamond, Lapis,
        Brick, Moss Stone, Obsidian, and Netherrack
    + Fence Blocks can connect to other blocks (configurable)
    * Fixed Minecraft Bugs...
        . Fences/Slabs can be harvested faster with the proper tools
            (Axe for Planks/Log, Pickaxe for Others)
        . Fences/Slabs react correctly to explosions
            (Obsidian Fence/Slab cannot be destroyed by TNT/Creeper)

